home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Online / RFCs / rfc / rfc0733.txt < prev    next >
Text File  |  1994-01-21  |  76KB  |  1,997 lines

  1.  
  2.  
  3.  
  4.  
  5. RFC #   733
  6. NIC # 41952
  7.  
  8. Obsoletes:  RFC #561  (NIC #18516)
  9.             RFC #680  (NIC #32116)
  10.             RFC #724  (NIC #37435)
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                    STANDARD FOR THE FORMAT OF
  19.  
  20.                   ARPA NETWORK TEXT MESSAGES(1)
  21.  
  22.  
  23.  
  24.  
  25.                         21 November 1977
  26.  
  27.  
  28.  
  29.  
  30.                                by
  31.  
  32.  
  33.                         David H. Crocker
  34.                       The Rand Corporation
  35.  
  36.                          John J. Vittal
  37.                   Bolt Beranek and Newman Inc.
  38.  
  39.                         Kenneth T. Pogran
  40.               Massachusets Institute of Technology
  41.  
  42.                    D. Austin Henderson, Jr.(2)
  43.                   Bolt Beranek and Newman Inc.
  44.  
  45.  
  46.  
  47. _________________________________________________________________
  48. (1)This work was  supported  by  the  Defense  Advanced  Research
  49. Projects Agency of the Department of Defense, under contract Nos.
  50. N00014-75-C-0661, MDA903-76-C-0212, and DAHC15-73-C0181.
  51.  
  52. (2)The authors' postal  addresses  are:   D.  Crocker,  The  Rand
  53. Corporation,  Information  Sciences  Dept.,  1700 Main St., Santa
  54. Monica, California 90406; J.  Vittal  &  D.  A.  Henderson,  Bolt
  55. Beranek & Newman, 50 Moulton St., Cambridge, Massachusetts 02138;
  56. and  K.  Pogran,  MIT  Laboratory  for  Computer   Science,   545
  57. Technology  Square, Cambridge, Massachusetts 02139.  The authors'
  58. ARPANET addresses are:  DCrocker at  Rand-Unix,  Vittal  at  BBN-
  59. TenexD, Pogran at MIT-Multics, and Henderson at BBN-TenexD.
  60.  
  61.  
  62.                               -iii-
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                              PREFACE
  69.  
  70.  
  71.  
  72.      ARPA's  Committee  on  Computer-Aided  Human   Communication
  73. (CAHCOM)  wishes  to promulgate a standard for the format of ARPA
  74. Network text message (mail) headers which  will  reasonably  meet
  75. the  needs  of  the  various  message  service  subsystems on the
  76. Network today.  The  authors  of  this  document  constitute  the
  77. CAHCOM  subcommittee charged with the task of developing this new
  78. standard.
  79.  
  80.      Essentially, we specify a revision to  ARPANET  Request  for
  81. Comments (RFC) 561, "Standardizing Network Mail Headers", and RFC
  82. 680, "Message Transmission Protocol".  This revision removes  and
  83. compacts  portions  of  the  previous  syntax  and  adds  several
  84. features to network address  specification.   In  particular,  we
  85. focus  on  people  and  not  mailboxes  as  recipients  and allow
  86. reference to stored address lists.   We  expect  this  syntax  to
  87. provide  sufficient  capabilities  to  meet most users' immediate
  88. needs and, therefore, give developers enough  breathing  room  to
  89. produce  a new mail transmission protocol "properly".  We believe
  90. that there is enough of a consensus in the Network  community  in
  91. favor  of such a standard syntax to make possible its adoption at
  92. this time.  An earlier draft of this specification was  published
  93. as  RFC  #724, "Proposed Official Standard for the Format of ARPA
  94. Network Messages"  and  contained  extensive  discussion  of  the
  95. background and issues in ARPANET mail standards.
  96.  
  97.      This specification was developed  over  the  course  of  one
  98. year,  using  the ARPANET mail environment, itself, to provide an
  99. on-going forum for discussing the capabilities  to  be  included.
  100. More   than   twenty   individuals,   from  across  the  country,
  101. participated in this discussion and we would like to  acknowledge
  102. their  considerable  efforts.   The  syntax  of  the standard was
  103. originally specified in the Backus-Naur Form (BNF) meta-language.
  104. Ken  L.   Harrenstien,  of SRI International, was responsible for
  105. re-coding the BNF  into  an  augmented  BNF  which  compacts  the
  106. specification and allows increased comprehensibility.
  107.  
  108.  
  109.  
  110.  
  111.                                -v-
  112.  
  113.  
  114.  
  115.  
  116.  
  117.                             CONTENTS
  118.  
  119.  
  120.  
  121. PREFACE..................................................... iii
  122.  
  123.  
  124. Section
  125.    I.  INTRODUCTION.........................................   1
  126.  
  127.   II.  FRAMEWORK............................................   2
  128.  
  129.  III.  SYNTAX...............................................   4
  130.        A. Notational Conventions............................   4
  131.        B. Lexical Analysis of Messages......................   5
  132.        C. General Syntax of Messages........................  13
  133.        D. Syntax of General Addressee Items.................  15
  134.        E. Supporting Constructs.............................  15
  135.  
  136.   IV.  SEMANTICS............................................  17
  137.        A. Address Fields....................................  17
  138.        B. Reference Specification Fields....................  22
  139.        C. Other Fields and Syntactic Items..................  23
  140.        D. Dates and Times...................................  24
  141.  
  142.    V.  EXAMPLES.............................................  25
  143.        A. Addresses.........................................  25
  144.        B. Address Lists.....................................  26
  145.        C. Originator Items..................................  26
  146.        D. Complete Headers..................................  28
  147.  
  148.  
  149. Appendix
  150.    A.  ALPHABETICAL LISTING OF SYNTAX RULES.................  31
  151.    B.  SIMPLE PARSING.......................................  35
  152.  
  153. BIBLIOGRAPHY................................................  37
  154.  
  155.  
  156.  
  157. Standard for the Format of Text Messages                        1
  158. I. Introduction
  159.  
  160.  
  161.  
  162.  
  163.  
  164.                         I.  INTRODUCTION
  165.  
  166.  
  167.  
  168.  
  169.      This standard specifies a syntax for text messages which are
  170. passed between computer users within the framework of "electronic
  171. mail".  The standard supersedes the informal standards  specified
  172. in  ARPANET  Request  for  Comments  numbers  561, "Standardizing
  173. Network Mail Headers", and 680, "Message Transmission  Protocol".
  174. In  this  document,  a  general framework is first described; the
  175. formal syntax is then specified, followed by a discussion of  the
  176. semantics.  Finally, a number of examples are given.
  177.  
  178.      This specification is intended strictly as a  definition  of
  179. what  is  to  be  passed between hosts on the ARPANET.  It is NOT
  180. intended to dictate either features which systems on the  Network
  181. are  expected  to support, or user interfaces to message creating
  182. or reading programs.
  183.  
  184.      A distinction should be made between what the  specification
  185. REQUIRES  and  what  it ALLOWS.  Messages can be made complex and
  186. rich with formally-structured components of information or can be
  187. kept small and simple, with a minimum of such information.  Also,
  188. the standard simplifies the interpretation  of  differing  visual
  189. formats in messages.  These simplifications facilitate the formal
  190. specification and indicate what the OFFICIAL  semantics  are  for
  191. messages.   Only  the  visual aspect of a message is affected and
  192. not the interpretation of information  within  it.   Implementors
  193. may choose to retain such visual distinctions.
  194.  
  195.  
  196.  
  197.  
  198.  
  199. Standard for the Format of Text Messages                        2
  200. II. Framework
  201.  
  202.  
  203.  
  204.  
  205.  
  206.                          II.  FRAMEWORK
  207.  
  208.  
  209.  
  210.  
  211.      Since there are many message systems which exist outside the
  212. ARPANET environment, as well as those within it, it may be useful
  213. to consider the general framework, and resulting capabilities and
  214. limitations, provided by this standard.
  215.  
  216.      Messages are expected to  consist  of  lines  of  text.   No
  217. special provisions are made, at this time, for encoding drawings,
  218. facsimile, speech, or structured text.
  219.  
  220.      No significant consideration has been given to questions  of
  221. data   compression   or   transmission/storage  efficiency.   The
  222. standard, in fact, tends to be very free with the number of  bits
  223. consumed.   For  example, field names are specified as free text,
  224. rather than special terse codes.
  225.  
  226.      A general "memo" framework is  used.   That  is,  a  message
  227. consists  of some information, in a rigid format, followed by the
  228. main part of the message, which is text and whose format  is  not
  229. specified  in this document.  The syntax of several fields of the
  230. rigidly-formated  ("header")   section   is   defined   in   this
  231. specification;  some of the header fields must be included in all
  232. messages.  The syntax  which  distinguishes  between  headers  is
  233. specified  separately  from  the  internal  syntax for particular
  234. headers.  This separation is intended to allow  extremely  simple
  235. parsers  to operate on the overall structure of messages, without
  236. concern  for  the  detailed  structure  of  individual   headers.
  237. Appendix B is provided to facilitate construction of these simple
  238. parsers.  In addition to the fields specified in  this  document,
  239. it  is  expected  that  other fields will gain common use.  User-
  240. defined header fields allow systems to extend their functionality
  241. while  maintaining  a uniform framework.  The approach is similar
  242. to that of the TELNET protocol,  in  that  a  basic  standard  is
  243. defined  which  includes  a  mechanism for (optionally) extending
  244. itself.  As necessary, the authors of this document will regulate
  245. the  publishing  of  specifications for these "extension-fields",
  246. through the same mechanisms used to publish this document.
  247.  
  248.      Such a  framework  severely  constrains  document  tone  and
  249. appearance  and  is  primarily useful for most intra-organization
  250. communications  and  relatively   structured   inter-organization
  251. communication.   A more robust environment might allow for multi-
  252. font, multi-color, multi-dimension encoding  of  information.   A
  253. less  robust  environment,  as  is present in most single-machine
  254. message systems, would more severely constrain the ability to add
  255. fields  and the decision to include specific fields.  In contrast
  256. to paper-based communication, it is interesting to note that  the
  257.  
  258.  
  259. Standard for the Format of Text Messages                        3
  260. II. Framework
  261.  
  262.  
  263.  
  264. RECEIVER  of  a  message  can exercise an extraordinary amount of
  265. control over the message's  appearance.   The  amount  of  actual
  266. control  available  to  message  receivers is contingent upon the
  267. capabilities of their individual message systems.
  268.  
  269.  
  270.  
  271. Standard for the Format of Text Messages                        4
  272. III. Syntax
  273.  
  274.  
  275.  
  276.  
  277.  
  278.                           III.  SYNTAX
  279.  
  280.  
  281.  
  282.      This  syntax  is  given  in  five  parts.   The  first  part
  283. describes  the  notation  used  in the specification.  The second
  284. part describes the base-level lexical analyzers  which  feed  the
  285. higher-level  parser  described  in the succeeding sections.  The
  286. third part gives a  general  syntax  for  messages  and  standard
  287. header  fields;  and  the  fourth  part  specifies  the syntax of
  288. addresses.  A final part  specifies  some  general  syntax  which
  289. supports the other sections.
  290.  
  291.  
  292.  
  293. A.  NOTATIONAL CONVENTIONS
  294.  
  295. These specifications are made in an  augmented  Backus-Naur  Form
  296. (BNF).  Differences  from  standard  BNF  involve  the  naming of
  297. rules, the indication of repetition and of "local" alternatives.
  298.  
  299.  
  300. 1.  Rule naming
  301.  
  302. Angle brackets ("<", ">") are not used, in general.  The name  of
  303. a   rule  is  simply  the  name  itself,  rather  than  "<name>".
  304. Quotation-marks enclose literal text (which may be  upper  and/or
  305. lower case).  Certain basic  rules  are  in  uppercase,  such  as
  306. SPACE,  TAB, CRLF, DIGIT, ALPHA, etc.  Angle brackets are used in
  307. rule definitions, and in the  rest  of  this  document,  whenever
  308. their presence will facilitate discerning the use of rule names.
  309.  
  310.  
  311. 2.  Parentheses:  Local alternatives
  312.  
  313. Elements enclosed in parentheses are treated as a single element.
  314. Thus,  "(elem  (foo  /  bar)  elem)" allows "(elem foo elem)" and
  315. "(elem bar elem)".
  316.  
  317.  
  318. 3.  * construct:  Repetition
  319.  
  320. The character "*" preceding an element indicates repetition.  The
  321. full form is:
  322.  
  323.           <l>*<m>element
  324.  
  325. indicating at least <l> and at most <m> occurrences  of  element.
  326. Default values are 0 and infinity so that "*(element)" allows any
  327. number, including zero; "1*element" requires at  least  one;  and
  328. "1*2element" allows one or two.
  329.  
  330.  
  331. Standard for the Format of Text Messages                        5
  332. III. Syntax
  333.   A. Notational Conventions
  334.  
  335.  
  336.  
  337. 4.  <number>element
  338.  
  339. "<n>(element)" is  equivalent  to  "<n>*<n>(element)";  that  is,
  340. exactly  <n>  occurrences of (element).  Thus 2DIGIT is a 2-digit
  341. number, and 3ALPHA is a string of three alphabetic characters.
  342.  
  343.  
  344. 5.  # construct:  Lists
  345.  
  346. A construct "#" is defined, similar to "*", as follows:
  347.  
  348.                   <l>#<m>element
  349.  
  350. indicating at least <l> and at most <m> elements, each  separated
  351. by  one or more commas (",").  This makes the usual form of lists
  352. very easy; a rule such as '(element *("," element))' can be shown
  353. as  "1#element".   Wherever this construct is used, null elements
  354. are allowed, but do not  contribute  to  the  count  of  elements
  355. present.   That  is,  "(element),,(element)"  is  permitted,  but
  356. counts as only two  elements.   Therefore,  where  at  least  one
  357. element  is  required,  at  least  one  non-null  element must be
  358. present.
  359.  
  360.  
  361. 6.  [optional]
  362.  
  363. Square  brackets  enclose  optional  elements;  "[foo  bar]"   is
  364. equivalent to "*1(foo bar)".
  365.  
  366.  
  367. 7.  ; Comments
  368.  
  369. A semi-colon, set off some distance to the right  of  rule  text,
  370. starts  a  comment which continues to the end of line.  This is a
  371. simple way  of  including  useful  notes  in  parallel  with  the
  372. specifications.
  373.  
  374.  
  375.  
  376. B.  LEXICAL ANALYSIS OF MESSAGES
  377.  
  378.  
  379. 1.  General Description
  380.  
  381. A message consists of headers and, optionally,  a  body  (i.e.  a
  382. series of text lines).  The text part is just a sequence of lines
  383. containing ASCII characters; it is separated from the headers  by
  384. a null line (i.e., a line with nothing preceding the CRLF).
  385.  
  386.  
  387.  
  388. Standard for the Format of Text Messages                        6
  389. III. Syntax
  390.   B. Lexical Analysis
  391.  
  392.  
  393.  
  394. a.  Folding and unfolding of headers
  395.  
  396.     Each header item can be viewed as a single, logical  line  of
  397.     ASCII characters.  For convenience, the field-body portion of
  398.     this conceptual entity can  be  split  into  a  multiple-line
  399.     representation  (i.e.,  "folded").   The general rule is that
  400.     wherever there can be linear-white-space  (NOT  simply  LWSP-
  401.     chars), a CRLF immediately followed by AT LEAST one LWSP-char
  402.     can instead be inserted.  (However, a header's name  and  the
  403.     following  colon  (":"),  which occur at the beginning of the
  404.     header item, may NOT be folded onto multiple  lines.)   Thus,
  405.     the single line
  406.  
  407.        To:  "Joe Dokes & J. Harvey" <ddd at Host>, JJV at BBN
  408.  
  409.     can be represented as
  410.  
  411.        To:  "Joe Dokes & J. Harvey" <ddd at Host>,
  412.             JJV at BBN
  413.  
  414.     and
  415.  
  416.        To:  "Joe Dokes & J. Harvey"
  417.                         <ddd at Host>,
  418.         JJV at BBN
  419.  
  420.     and
  421.  
  422.        To:  "Joe Dokes
  423.         & J. Harvey" <ddd at Host>, JJV at BBN
  424.  
  425.     The  process  of  moving  from  this   folded   multiple-line
  426.     representation   of   a  header  field  to  its  single  line
  427.     representation will  be  called  "unfolding".   Unfolding  is
  428.     accomplished  by  regarding  CRLF  immediately  followed by a
  429.     LWSP-char as equivalent  to  the  LWSP-char.
  430.  
  431. b.  Structure of header fields
  432.  
  433.     Once header fields have been unfolded, they may be viewed  as
  434.     being  composed  of  a  field-name followed by a colon (":"),
  435.     followed by a field-body.  The field-name must be composed of
  436.     printable  ASCII  characters  (i.e.,  characters  which  have
  437.     values between 33.  and  126.,  decimal,  except  colon)  and
  438.     LWSP-chars.   The  field-body  may  be  composed of any ASCII
  439.     characters (other than  an  unquoted  CRLF,  which  has  been
  440.     removed by unfolding).
  441.  
  442.     Certain field-bodies of  header  fields  may  be  interpreted
  443.     according  to  an internal syntax which some systems may wish
  444.     to parse.  These fields will be referred to  as  "structured"
  445.     fields.    Examples   include  fields  containing  dates  and
  446.  
  447.  
  448. Standard for the Format of Text Messages                        7
  449. III. Syntax
  450.   B. Lexical Analysis
  451.  
  452.  
  453.  
  454.     addresses.  Other fields, such as "Subject"  and  "Comments",
  455.     are regarded simply as strings of text.
  456.  
  457.     NOTE:  Field-names, unstructured field bodies and  structured
  458.     field  bodies  each  are  scanned  by  their own, INDEPENDENT
  459.     "lexical" analyzer.
  460.  
  461. c.  Field-names
  462.  
  463.     To aid in the creation and reading of field-names,  the  free
  464.     insertion  of  LWSP-chars  is  allowed in  reasonable places.
  465.  
  466.     Rather than obscuring the syntax specification for field-name
  467.     with  the explicit syntax for these LWSP-chars, the existence
  468.     of a "lexical" analyzer is assumed.  The analyzer  interprets
  469.     the  text  which  comprises  the  field-name as a sequence of
  470.     field-name atoms (fnatoms) separated by LWSP-chars
  471.  
  472.     Note that ONLY LWSP-chars may occur between the fnatoms of  a
  473.     field-name and that CRLFs may NOT.  In addition, comments are
  474.     NOT lexically recognized, as such, but parenthesized  strings
  475.     are  legal  as  part  of  field-names.  These constraints are
  476.     different from what is permissible  within  structured  field
  477.     bodies.   In  particular,  this means that header field-names
  478.     must wholly occur on the FIRST line of a folded  header  item
  479.     and may NOT be split across two or more lines.
  480.  
  481. d.  Unstructured field bodies
  482.  
  483.     For  some  fields,  such  as  "Subject"  and  "Comments",  no
  484.     structuring is assumed; and they are treated simply as texts,
  485.     like those in the message body.  Rules of  folding  apply  to
  486.     these  fields, so that such field bodies which occupy several
  487.     lines must therefore have the  second  and  successive  lines
  488.     indented by at least one LWSP-char.
  489.  
  490. e.  Structured field bodies
  491.  
  492.     To aid in the creation and reading of structured fields,  the
  493.     free  insertion  of linear-white-space (which permits folding
  494.     by inclusion of  CRLFs)  is  allowed  in  reasonable  places.
  495.     Rather  than  obscuring  the  syntax specifications for these
  496.     structured fields  with  explicit  syntax  for  this  linear-
  497.     white-space,  the  existence of another "lexical" analyzer is
  498.     assumed.  This analyzer does not apply for field bodies which
  499.     are  simply unstructured strings of text, as described above.
  500.     It provides an interpretation of the unfolded text comprising
  501.     the  body  of  the  field  as  a sequence of lexical symbols.
  502.     These symbols are:
  503.  
  504.             -  individual special characters
  505.             -  quoted-strings
  506.  
  507.  
  508. Standard for the Format of Text Messages                        8
  509. III. Syntax
  510.   B. Lexical Analysis
  511.  
  512.  
  513.  
  514.             -  comments
  515.             -  atoms
  516.  
  517.     The first three of these symbols are self-delimiting.   Atoms
  518.     are  not; they therefore are delimited by the self-delimiting
  519.     symbols and by linear-white-space.  For the purposes  of  re-
  520.     generating sequences of atoms and quoted-strings, exactly one
  521.     SPACE is assumed to exist and should be  used  between  them.
  522.     (Also,  in  Section  III.B.3.a,  note  the  rules  concerning
  523.     treatment of multiple continguous LWSP-chars.)
  524.  
  525.     So, for example, the folded body of an address field
  526.  
  527.             ":sysmail"@   Some-Host,
  528.             Muhammed(I am   the greatest)Ali   at(the)WBA
  529.  
  530.     is analyzed into the following lexical symbols and types:
  531.  
  532.             ":sysmail"              quoted string
  533.             @                       special
  534.             Some-Host               atom
  535.             ,                       special
  536.             Muhammed                atom
  537.             (I am   the greatest)   comment
  538.             Ali                     atom
  539.             at                      atom
  540.             (the)                   comment
  541.             WBA                     atom
  542.  
  543.     The cononical representations for the data in these addresses
  544.     are  the  following  strings  (note that there is exactly one
  545.     SPACE between words):
  546.  
  547.                 :sysmail at Some-Host
  548.  
  549.     and
  550.  
  551.                 Muhammed Ali at WBA
  552.  
  553.  
  554.  
  555. 2.  Formal Definitions
  556.  
  557. The first four rules, below, indicate a meta-syntax  for  fields,
  558. without  regard to their particular type or internal syntax.  The
  559. remaining rules define basic syntactic structures which are  used
  560. by the rules in Sections III.C, III.D, and III.E.
  561.  
  562. field       =  field-name ":" [ field-body ] CRLF
  563.  
  564. field-name  =  fnatom *( LWSP-char [fnatom] )
  565.  
  566.  
  567.  
  568. Standard for the Format of Text Messages                        9
  569. III. Syntax
  570.   B. Lexical Analysis
  571.  
  572.  
  573.  
  574. fnatom      =  1*<any CHAR, excluding CTLs, SPACE, and ":">
  575.  
  576. field-body  =  field-body-contents
  577.                [CRLF LWSP-char field-body]
  578.  
  579. field-body-contents = <the TELNET ASCII characters making up the
  580.                field-body, as defined in the following sections,
  581.                and consisting of combinations of atom, quoted-
  582.                string, and specials tokens, or else consisting of
  583.                texts>
  584.  
  585.                                             ; (  Octal, Decimal.)
  586. CHAR        =  <any TELNET ASCII character> ; (  0-177,  0.-127.)
  587. ALPHA       =  <any TELNET ASCII alphabetic character>
  588.                                             ; (101-132, 65.- 90.)
  589.                                             ; (141-172, 97.-122.)
  590. DIGIT       =  <any TELNET ASCII digit>     ; ( 60- 71, 48.- 57.)
  591. CTL         =  <any TELNET ASCII control    ; (  0- 37,  0.- 31.)
  592.                 character and DEL>          ; (    177,     127.)
  593. CR          =  <TELNET ASCII carriage return>;(     15,      13.)
  594. LF          =  <TELNET ASCII linefeed>      ; (     12,      10.)
  595. SPACE       =  <TELNET ASCII space>         ; (     40,      32.)
  596. HTAB        =  <TELNET ASCII horizontal-tab>; (     11,       9.)
  597. <">         =  <TELNET ASCII quote mark>    ; (     42,      34.)
  598. CRLF        =  CR LF
  599.  
  600. LWSP-char   =  SPACE / HTAB                 ; semantics = SPACE
  601. linear-white-space =  1*([CRLF] LWSP-char)  ; semantics = SPACE
  602.                                             ; CRLF => folding
  603.  
  604. specials    =  "(" / ")" / "<" / ">" / "@"  ; To use in a word,
  605.             /  "," / ";" / ":" / "\" / <">  ;  word must be a
  606.                                             ;  quoted-string.
  607.  
  608. delimiters  =  specials / comment / linear-white-space
  609.  
  610. text        =  <any CHAR, including bare    ; => atoms, specials,
  611.                 CR and/or bare LF, but NOT  ;  comments and
  612.                 including CRLF>             ;  quoted-strings are
  613.                                             ;  NOT interpreted.
  614.  
  615. atom        =  1*<any CHAR except specials and CTLs>
  616.  
  617. quoted-string = <"> *(qtext/quoted-pair) <">; Any number of qtext
  618.                                             ;   chars or any
  619.                                             ;   quoted char.
  620.  
  621. qtext       =  <any CHAR excepting <">      ; => may be folded
  622.                 and CR, and including
  623.                 linear-white-space>
  624.  
  625.  
  626.  
  627. Standard for the Format of Text Messages                       10
  628. III. Syntax
  629.   B. Lexical Analysis
  630.  
  631.  
  632.  
  633. comment     =  "(" *(ctext / comment / quoted-pair) ")"
  634. ctext       =  <any CHAR excluding "(",     ; => may be folded
  635.                 ")" and CR, and including
  636.                 linear-white-space>
  637.  
  638. quoted-pair =  "\" CHAR
  639.  
  640.  
  641. 3.  Clarifications
  642.  
  643. a.  "White space"
  644.  
  645.     Remember that in field-names  and  structured  field  bodies,
  646.     MULTIPLE  LINEAR  WHITE SPACE TELNET ASCII CHARACTERS (namely
  647.     HTABs and SPACEs) ARE TREATED AS SINGLE SPACES AND MAY FREELY
  648.     SURROUND ANY SYMBOL.  In all header fields, the only place in
  649.     which at least one space is REQUIRED is at the  beginning  of
  650.     continuation  lines  in a folded field.  When passing text to
  651.     processes which do  not  interpret  text  according  to  this
  652.     standard  (e.g.,  ARPANET FTP mail servers), then exactly one
  653.     SPACE should be used in place of arbitrary linear-white-space
  654.     and comment sequences.
  655.  
  656.     WHEREVER A MEMBER OF THE LIST  OF  <DELIMITER>S  IS  ALLOWED,
  657.     LWSP-CHARS MAY ALSO OCCUR BEFORE AND/OR AFTER IT.
  658.  
  659.     Writers of mail-sending  (i.e.  header  generating)  programs
  660.     should  realize  that  there is no Network-wide definition of
  661.     the effect of horizontal-tab TELNET ASCII characters  on  the
  662.     appearance  of  text  at another Network host; therefore, the
  663.     use  of  tabs  in  message  headers,  though  permitted,   is
  664.     discouraged.
  665.  
  666.     Note that  during  transmissions  across  the  ARPANET  using
  667.     TELNET  NVT  connections,  data  must  conform  to TELNET NVT
  668.     conventions (e.g., CR must be followed by either LF, making a
  669.     CRLF, or <null>, if the CR is to stand alone).
  670.  
  671. b.  Comments
  672.  
  673.     Comments are detected as such  only  within  field-bodies  of
  674.     structured  fields.   A  comment  is  a  set  of TELNET ASCII
  675.     characters, which is not within a quoted-string and which  is
  676.     enclosed  in  matching parentheses; parentheses nest, so that
  677.     if an unquoted left parenthesis occurs in a  comment  string,
  678.     there  must  also  be  a  matching right parenthesis.  When a
  679.     comment is used to act as the delimiter between a sequence of
  680.     two  lexical  symbols,  such  as  two  atoms, it is lexically
  681.     equivalent with one SPACE, for the purposes  of  regenerating
  682.     the  sequence,  such as when passing the sequence onto an FTP
  683.     mail server.
  684.  
  685.  
  686.  
  687. Standard for the Format of Text Messages                       11
  688. III. Syntax
  689.   B. Lexical Analysis
  690.  
  691.  
  692.  
  693.     In particular comments are NOT passed to the FTP  server,  as
  694.     part  of  a MAIL or MLFL command, since comments are not part
  695.     of the "formal" address.
  696.  
  697.     If a comment is to be "folded" onto multiple lines, then  the
  698.     syntax for folding must be adhered to.  (See items III.B.1.a,
  699.     above,  and  III.B.3.f,  below.)   Note  that  the   official
  700.     semantics therefore do not "see" any unquoted CRLFs which are
  701.     in comments, although particular parsing programs may wish to
  702.     note  their  presence.   For  these  programs,  it  would  be
  703.     reasonable to interpret a "CRLF LWSP-char" as  being  a  CRLF
  704.     which  is part of the comment; i.e., the CRLF is kept and the
  705.     LWSP-char is discarded.   Quoted  CRLFs  (i.e.,  a  backslash
  706.     followed  by a CR followed by a LF) still must be followed by
  707.     at least one LWSP-char.
  708.  
  709. c.  Delimiting and quoting characters
  710.  
  711.     The quote character (backslash) and characters which  delimit
  712.     syntactic units are not, generally, to be taken as data which
  713.     are part  of  the  delimited  or  quoted  unit(s).   The  one
  714.     exception is SPACE.  In particular, the quotation-marks which
  715.     define  a  quoted-string,  the  parentheses  which  define  a
  716.     comment  and the backslash which quotes a following character
  717.     are  NOT  part  of  the  quoted-string,  comment  or   quoted
  718.     character.   A  quotation-mark  which  is  to  be  part  of a
  719.     quoted-string, a parenthesis which is to be part of a comment
  720.     and  a  backslash  which is to be part of either must each be
  721.     preceded by the quote-character backslash ("\").   Note  that
  722.     the  syntax  allows  any  character  to  be  quoted  within a
  723.     quoted-string or comment;  however  only  certain  characters
  724.     MUST  be quoted to be included as data.  These characters are
  725.     those which are not part of the alternate text  group  (i.e.,
  726.     ctext or qtext).
  727.  
  728.     A single SPACE is assumed to exist between  contiguous  words
  729.     in  a  phrase,  and this interpretation is independent of the
  730.     actual number of LWSP-chars which the creator places  between
  731.     the  words.  To include more than one SPACE, the creator must
  732.     make the LWSP-chars be part of a quoted-string.
  733.  
  734.     Quotation marks which delimit a quoted string and backslashes
  735.     which  quote the following character should NOT accompany the
  736.     quoted-string when the string is used with processes that  do
  737.     not  interpret  data  according  to this specification (e.g.,
  738.     ARPANET FTP mail servers).
  739.  
  740.  
  741.  
  742. Standard for the Format of Text Messages                       12
  743. III. Syntax
  744.   B. Lexical Analysis
  745.  
  746.  
  747.  
  748. d.  Quoted-strings
  749.  
  750.     Where   permitted  (i.e.,  in  words  in  structured  fields)
  751.     quoted-strings   are   treated   as  a  single  symbol  (i.e.
  752.     equivalent to an atom, syntactically).  If a quoted-string is
  753.     to  be  "folded"  onto  multiple  lines,  then the syntax for
  754.     folding must be adhered to.  (See items III.B.1.a, above, and
  755.     III.B.3.f,   below.)    Note   that  the  official  semantics
  756.     therefore do not "see" any bare CRLFs which  are  in  quoted-
  757.     strings,  although  particular  parsing  programs may wish to
  758.     note  their  presence.   For  these  programs,  it  would  be
  759.     reasonable  to  interpret  a "CRLF LWSP-char" as being a CRLF
  760.     which is part of the quoted-string; i.e., the  CRLF  is  kept
  761.     and  the  LWSP-char  is  discarded.   Quoted  CRLFs  (i.e., a
  762.     backslash followed by a CR followed by a LF) are also subject
  763.     to  rules  of  folding,  but  the  presence  of  the  quoting
  764.     character (backslash) explicitly indicates that the  CRLF  is
  765.     data to the quoted string.  Stripping off the first following
  766.     LWSP-char is also appropriate when parsing quoted CRLFs.
  767.  
  768. e.  Bracketing characters
  769.  
  770.     There are three types of brackets which must be well nested:
  771.  
  772.         o  Parentheses are used to indicate comments.
  773.  
  774.         o  Angle brackets ("<" and ">") are  generally  used
  775.            to indicate the presence of at least one machine-
  776.            usable code (e.g., delimiting mailboxes).
  777.  
  778.         o  Colon/semi-colon  (":"  and  ";")  are   used  in
  779.            address   specifications  to  indicate  that  the
  780.            included list of addresses are to be treated as a
  781.            group.
  782.  
  783. f.  Case independence of certain specials atoms
  784.  
  785.     Certain atoms, which are represented in the syntax as literal
  786.     alphabetic  strings, can be represented in any combination of
  787.     upper and lower case.  These are:
  788.  
  789.         -  field-name,
  790.         -  "Include", "Postal" and equivalent atoms in a
  791.            ":"<atom>":" address specification,
  792.         -  "at", in a host-indicator,
  793.         -  node,
  794.         -  day-of-week,
  795.         -  month, and
  796.         -  zones.
  797.  
  798.     When matching an atom against one of these literals, case  is
  799.     to  be ignored.  For example, the field-names "From", "FROM",
  800.  
  801.  
  802. Standard for the Format of Text Messages                       13
  803. III. Syntax
  804.   B. Lexical Analysis
  805.  
  806.  
  807.  
  808.     "from", and even "FroM" should all  be  treated  identically.
  809.     However,  the  case  shown in this specification is suggested
  810.     for message-creating processes.  Note that, at the  level  of
  811.     this  specification,  case  IS  relevant  to  other words and
  812.     texts.  Also see Section IV.A.1.f, below.
  813.  
  814. g.  Folding long lines
  815.  
  816.     Each header item (field of the message) may be represented on
  817.     exactly  one line consisting of the name of the field and its
  818.     body; this is what the parser sees.  For readability,  it  is
  819.     recommended  that the field-body portion of long header items
  820.     be "folded" onto multiple lines of the actual header.  "Long"
  821.     is  commonly  interpreted  to  mean  greater  than  65  or 72
  822.     characters.  The former length is recommended as a limit, but
  823.     it is not imposed by this standard.
  824.  
  825. h.  Backspace characters
  826.  
  827.     Backspace TELNET ASCII characters (ASCII BS, decimal 8.)  may
  828.     be   included   in   texts   and   quoted-strings  to  effect
  829.     overstriking; however, any use of backspaces which effects an
  830.     overstrike  to  the  left  of  the  beginning  of the text or
  831.     quoted-string is prohibited.
  832.  
  833.  
  834.  
  835. C.  GENERAL SYNTAX OF MESSAGES:
  836.  
  837.  
  838.     NOTE:  Due to an artifact of the notational conventions,
  839.            the  syntax indicates that, when present, "Date",
  840.            "From", "Sender", and "Reply-To" fields  must  be
  841.            in  a  particular order.  These header items must
  842.            be unique (occur exactly once).   However  header
  843.            fields, in fact, are NOT required to occur in any
  844.            particular order, except that  the  message  body
  845.            must  occur  AFTER  the headers.  For readability
  846.            and ease of parsing  by  simple  systems,  it  is
  847.            recommended  that  headers  be  sent in the order
  848.            "Date", "From", "Subject", "Sender", "To",  "cc",
  849.            etc.    This   specification   permits   multiple
  850.            occurrences of  most  optional-fields.   However,
  851.            their  interpretation  is not specified here, and
  852.            their use is strongly discouraged.
  853.  
  854. The following syntax for the bodies of various fields  should  be
  855. thought  of as describing each field body as a single long string
  856. (or line).   The  section  on  Lexical  Analysis  (section  II.B)
  857. indicates how such long strings can be represented on more than
  858. one line in the actual transmitted message.
  859.  
  860.  
  861.  
  862. Standard for the Format of Text Messages                       14
  863. III. Syntax
  864.   C. Messages
  865.  
  866.  
  867.  
  868. message     =  fields *( CRLF *text )       ; Everything after
  869.                                             ;  first null line
  870.                                             ;  is message body
  871.  
  872. fields      =  date-field                   ; Creation time-stamp
  873.                originator-fields            ;  & author id are
  874.                *optional-field              ;  required: others
  875.                                             ;  are all optional
  876.  
  877. originator-fields =
  878.                (  "From"     ":" mailbox    ; Single author
  879.                  ["Reply-To" ":" #address] )
  880.             /  (  "From"     ":" 1#address  ; Multiple authors &
  881.                   "Sender"   ":" mailbox    ;  may have non-mach-
  882.                  ["Reply-To" ":" #address] );  ine addresses
  883.  
  884. date-field  =  "Date"       ":" date-time
  885.  
  886. optional-field  =
  887.                "To"         ":" #address
  888.             /  "cc"         ":" #address
  889.             /  "bcc"        ":" #address    ; Blind carbon
  890.             /  "Subject"    ":" *text
  891.             /  "Comments"   ":" *text
  892.             /  "Message-ID" ":" mach-id     ; Only one allowed
  893.             /  "In-Reply-To"":" #(phrase / mach-id)
  894.             /  "References" ":" #(phrase / mach-id)
  895.             /  "Keywords"   ":" #phrase
  896.             /  extension-field              ; To be defined in
  897.                                             ;  supplemental
  898.                                             ;  specifications
  899.             /  user-defined-field           ; Must have unique
  900.                                             ;  field-name & may
  901.                                             ;  be pre-empted
  902.  
  903. extension-field = <Any field which is defined in a document
  904.                published as a formal extension to this
  905.                specification>
  906.  
  907. user-defined-field = <Any field which has not been defined in
  908.                this specification or published as an extension to
  909.                this specification; names for such fields must be
  910.                unique and may be preempted by published
  911.                extensions>
  912.  
  913.  
  914.  
  915.  
  916.  
  917. Standard for the Format of Text Messages                       15
  918. III. Syntax
  919.   D. Addressee Items
  920.  
  921.  
  922.  
  923. D.  SYNTAX OF GENERAL ADDRESSEE ITEMS
  924.  
  925.  
  926. address     =  host-phrase                  ; Machine mailbox
  927.             / ( [phrase] "<" #address ">")  ; Individual / List
  928.             / ( [phrase] ":" #address ";")  ; Group
  929.             /  quoted-string                ; Arbitrary text
  930.             / (":" ( "Include"              ; File, w/ addr list
  931.                    / "Postal"               ; (U.S.) Postal addr
  932.                    /  atom )                ; Extended data type
  933.                ":" address)
  934.  
  935. mailbox     =  host-phrase /  (phrase mach-id)
  936.  
  937. mach-id     =  "<" host-phrase ">"          ; Contents must never
  938.                                             ;  be modified!
  939.  
  940.  
  941.  
  942. E.  SUPPORTING CONSTRUCTS
  943.  
  944.  
  945. host-phrase =  phrase  host-indicator       ; Basic address
  946.  
  947. host-indicator =  1*( ("at" / "@") node )   ; Right-most node is
  948.                                             ;  at top of network
  949.                                             ;  hierarchy; left-
  950.                                             ;  most must be host
  951.  
  952. node        =  word / 1*DIGIT               ; Official host or
  953.                                             ;  network name or
  954.                                             ;  decimal address
  955.  
  956.  
  957. date-time   =  [ day-of-week "," ] date time
  958.  
  959. day-of-week =  "Monday"    / "Mon"  / "Tuesday"   / "Tue"
  960.             /  "Wednesday" / "Wed"  / "Thursday"  / "Thu"
  961.             /  "Friday"    / "Fri"  / "Saturday"  / "Sat"
  962.             /  "Sunday"    / "Sun"
  963.  
  964. date        =  1*2DIGIT ["-"] month         ; day month year
  965.                ["-"] (2DIGIT /4DIGIT)       ;  e.g. 20 Aug [19]77
  966.  
  967. month       =  "January"   / "Jan"  / "February"  / "Feb"
  968.             /  "March"     / "Mar"  / "April"     / "Apr"
  969.             /  "May"                / "June"      / "Jun"
  970.             /  "July"      / "Jul"  / "August"    / "Aug"
  971.             /  "September" / "Sep"  / "October"   / "Oct"
  972.             /  "November"  / "Nov"  / "December"  / "Dec"
  973.  
  974.  
  975.  
  976. Standard for the Format of Text Messages                       16
  977. III. Syntax
  978.   E. Supporting Constructs
  979.  
  980.  
  981.  
  982. time        =  hour zone                    ; ANSI and Military
  983.                                             ;  (seconds optional)
  984.  
  985. hour        =  2DIGIT [":"] 2DIGIT [ [":"] 2DIGIT ]
  986.                                             ; 0000[00] - 2359[59]
  987.  
  988. zone        = ( ["-"] ( "GMT"               ; Relative to GMT:
  989.                                             ; North American
  990.                  /  "NST" /                 ;  Newfoundland:-3:30
  991.                  /  "AST" / "ADT"           ;  Atlantic: - 4/ - 3
  992.                  /  "EST" / "EDT"           ;  Eastern:  - 5/ - 4
  993.                  /  "CST" / "CDT"           ;  Central:  - 6/ - 5
  994.                  /  "MST" / "MDT"           ;  Mountain: - 7/ - 6
  995.                  /  "PST" / "PDT"           ;  Pacific:  - 8/ - 7
  996.                  /  "YST" / "YDT"           ;  Yukon:    - 9/ - 8
  997.                  /  "HST" / "HDT"           ;  Haw/Ala   -10/ - 9
  998.                  /  "BST" / "BDT"           ;  Bering:   -11/ -10
  999.                     1ALPHA       ))         ; Military: Z = GMT;
  1000.                                             ;  A:-1; (J not used)
  1001.                                             ;  M:-12; N:+1; Y:+12
  1002.             / ( ("+" / "-") 4DIGIT )        ; Local differential
  1003.                                             ;  hours/min. (HHMM)
  1004.  
  1005. phrase      =  1*word                       ; Sequence of words.
  1006.                                             ;  Separation seman-
  1007.                                             ;  tically = SPACE
  1008.  
  1009. word        =  atom / quoted-string
  1010.  
  1011.  
  1012.  
  1013.  
  1014. Standard for the Format of Text Messages                       17
  1015. IV. Semantics
  1016.  A. Address Fields
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.                          IV.  SEMANTICS
  1023.  
  1024.  
  1025.  
  1026. A.  ADDRESS FIELDS
  1027.  
  1028.  
  1029. 1.  General
  1030.  
  1031. a.  The phrase part of a host-phrase in an address  specification
  1032.     (i.e.,  the  host's name for the mailbox) is understood to be
  1033.     whatever the receiving FTP Server allows (for example,  TENEX
  1034.     systems  do  not  now understand addresses of the form "P. D.
  1035.     Q. Bach", but another system might).
  1036.  
  1037.     Note that a mailbox is a conceptual  entity  which  does  not
  1038.     necessarily pertain to file storage.  For example, some sites
  1039.     may choose to print mail on their line  printer  and  deliver
  1040.     the output to the addressee's desk.
  1041.  
  1042.     An individual may have  several  mailboxes  and  a  group  of
  1043.     individuals  may wish to receive mail as a single unit (i.e.,
  1044.     a distribution list).  The second and third  alternatives  of
  1045.     an  address  list  (#address)  allow  naming  a collection of
  1046.     subordinate  addresses  list(s).   Recipient  mailboxes   are
  1047.     specified  within the bracketed part ("<" - ">" or ":" - ";")
  1048.     of such named lists.  The use of angle-brackets ("<", ">") is
  1049.     intended for the cases of individuals with multiple mailboxes
  1050.     and of special mailbox lists; it is not expected to be nested
  1051.     more  than  one level, although the specification allows such
  1052.     nesting.  The use of colon/semi-colon (":", ";") is  intended
  1053.     for  the  case  of  groups.   Groups  can be expected to nest
  1054.     (i.e., to  contain  subgroups).   For  both  individuals  and
  1055.     groups,  a  copy  of the transmitted message is to be sent to
  1056.     EACH mailbox  listed.   For  the  case  of  a  special  list,
  1057.     treatment of addresses is defined in the relevant subsections
  1058.     of this section.
  1059.  
  1060. b.  The inclusion of bare quoted-strings as addresses (i.e.,  the
  1061.     fourth  address-form  alternative)  is allowed as a syntactic
  1062.     convenience, but no semantics  are  defined  for  their  use.
  1063.     However,  it is reasonable, when replicating an address list,
  1064.     to replicate ALL of its members, including quoted-strings.
  1065.  
  1066. c.  ":Include:" specifications are used to refer to one  or  more
  1067.     locations  containing  stored  address  lists (#address).  If
  1068.     more than one location is referenced, the address part of the
  1069.     Include  phrase  must  be  a  list  (#address)  surrounded by
  1070.     angle-brackets, as per the "Individual / List" alternative of
  1071.     <address>.   Constituent  addresses  must  resolve to a host-
  1072.  
  1073.  
  1074. Standard for the Format of Text Messages                       18
  1075. IV. Semantics
  1076.  A. Address Fields
  1077.  
  1078.  
  1079.  
  1080.     phrase; only they have any  meaning  within  this  construct.
  1081.     The phrase part of indicated host-phrases should contain text
  1082.     which the referenced  host  can  resolve  to  a  file.   This
  1083.     standard is not a protocol and so does not prescribe HOW data
  1084.     is to be retrieved from the  file.   However,  the  following
  1085.     requirements are made:
  1086.  
  1087.          o  The file must be accessible  through  the  local
  1088.             operating system interface (if it exists), given
  1089.             adequate user access rights; and
  1090.  
  1091.          o  If a host has an FTP server and a user  is  able
  1092.             to  retrieve  any files from the host using that
  1093.             server, then the file must be accessible through
  1094.             FTP,  using  DEFAULT  transfer  settings,  given
  1095.             adequate user access rights.
  1096.  
  1097.     It is intended that this mechanism allow programs to retrieve
  1098.     such lists automatically.
  1099.  
  1100.     The interpretation of such a file reference follows.  This is
  1101.     not  intended  to imply any particular implementation scheme,
  1102.     but is presented  to  aid  in  understanding  the  notion  of
  1103.     including  file  contents in address lists:
  1104.  
  1105.          o  Elements of the address list part are alternates
  1106.             and  the  contents of ONLY ONE of them are to be
  1107.             included in the resultant address list.
  1108.  
  1109.          o  The contents of the file indicated by  a  member
  1110.             host-phrase  are  treated as an address list and
  1111.             are inserted as an address  list  (#address)  in
  1112.             the  position  of  the  path item in the syntax.
  1113.             That is, the TELNET ASCII characters  specifying
  1114.             the  entire Include <address> is replaced by the
  1115.             contents of one of the files to which the  host-
  1116.             phrase(s),   of  the  address  list  (#address),
  1117.             refers.  Therefore, the contents of  each  file,
  1118.             indicated   by   an  Include  address,  must  be
  1119.             syntactically self-contained and must adhere  to
  1120.             the full syntax prescribed herein for an address
  1121.             list.
  1122.  
  1123. d.  ":Postal:" specifications are used to indicate (U.S.)  postal
  1124.     addresses,  but  can  be  treated  the  same as quoted-string
  1125.     addresses.  To reference a list of postal addresses, the list
  1126.     must  conform  to  the  "Individual  /  List"  alternative of
  1127.     <address>.  The ":Include:" alternative also is valid.
  1128.  
  1129. e.  The "':' atom ':'" syntax is intended as a general  mechanism
  1130.     for  indicating  specially  data-typed  addresses.   As  with
  1131.     extension-fields, the authors of this document will  regulate
  1132.  
  1133.  
  1134. Standard for the Format of Text Messages                       19
  1135. IV. Semantics
  1136.  A. Address Fields
  1137.  
  1138.  
  1139.  
  1140.     the  publishing  of  specifications  for these extended data-
  1141.     types.  In the absence of defined semantics,  any  occurrence
  1142.     of  an address in this form may be treated as a quoted-string
  1143.     address.
  1144.  
  1145. f.  A node name must be THE official name of a network or a host,
  1146.     or  else  a decimal number indicating the Network address for
  1147.     that network or host, at the time  the  message  is  created.
  1148.     The  USE  OF NUMBERS IS STRONGLY DISCOURAGED and is permitted
  1149.     only due to the occasional necessity of bypassing local  name
  1150.     tables.   For  the  ARPANET, official names are maintained by
  1151.     the Network Information Center at  SRI  International,  Menlo
  1152.     Park, California.
  1153.  
  1154.     Whenever a message might be transmitted or migrate to a  host
  1155.     on  another  network,  full  hierarchical  addresses  must be
  1156.     specified.   These  are  indicated  as  a  series  of  words,
  1157.     separated  by at-sign or "at" indications.  The communication
  1158.     environment is assumed to consist of a collection of networks
  1159.     organized  as  independent  "trees"  except  for  connections
  1160.     between the root nodes.  That is, only the roots can  act  as
  1161.     gateways  between  these  independent  networks.  While other
  1162.     actual connections may exist, it is believed  that  presuming
  1163.     this  type of organization will provide a reliable method for
  1164.     describing VALID, if not EFFICIENT, paths between  hosts.   A
  1165.     typical full mailbox specification might therefore look like:
  1166.  
  1167.          Friendly User @ hosta @ local-net1 @ major-netq
  1168.  
  1169.     In the simplest case, a mail-sending host should transmit the
  1170.     message  to the node which is mentioned last (farthest to the
  1171.     right), strip off that node reference from the specification,
  1172.     and then pass the remaining host-phrase to the recipient host
  1173.     (in  the  ARPANET,  its  FTP server) for it to process.  This
  1174.     treats the remaining portion of the host-indicator merely  as
  1175.     the terminating part of the phrase.
  1176.  
  1177.          NOTE:  When passing any portion of a host-indicator
  1178.                 onto a process which does not interpret data
  1179.                 according to this  standard  (e.g.,  ARPANET
  1180.                 FTP  servers), "@" must be used and not "at"
  1181.                 and it must not be preceded or  followed  by
  1182.                 any  LWSP-chars.   Using  the above example,
  1183.                 the following string would be passed to  the
  1184.                 major-netq gateway:
  1185.  
  1186.                 Friendly User@hosta@local-net1
  1187.  
  1188.     When the sending host  has  more  knowledge  of  the  network
  1189.     environment,  then  it  should  send the message along a more
  1190.     efficient path, making appropriate changes to the form of the
  1191.     host-phrase which it gives to the recipient host.
  1192.  
  1193.  
  1194. Standard for the Format of Text Messages                       20
  1195. IV. Semantics
  1196.  A. Address Fields
  1197.  
  1198.  
  1199.  
  1200.     To use the above specification as an example:  If  a  sending
  1201.     hostb  also were part of local-net1, then it could  send  the
  1202.     message  directly  to  hosta  and  would give only the phrase
  1203.     "Friendly User" to hosta's mail-receiving program.  If  hostb
  1204.     were  part  of  local-net2, along with hostc, and happened to
  1205.     know that hosta and hostc were  part  of  another  local-net,
  1206.     then  hostb  could  send  the message to hostc to the address
  1207.     "Friendly User@hosta".
  1208.  
  1209.     The phrase in a host-phrase is intended to be meaningful only
  1210.     to  the  indicated  receiving  host.  To all other hosts, the
  1211.     phrase is to be treated as an uninterpreted string.  No  case
  1212.     transformations  should  be  (automatically) performed on the
  1213.     phrase.  The phrase  is  passed  to  the  local  host's  mail
  1214.     sending  program; it is the responsibility of the destination
  1215.     host's mail receiving (distribution) program to perform  case
  1216.     mapping on this phrase, if required, to deliver the mail.
  1217.  
  1218.  
  1219. 2.  Originator Fields
  1220.  
  1221.     WARNING:  The standard  allows  only  a  subset  of  the
  1222.               combinations  possible  with the From, Sender,
  1223.               and  Reply-To  fields.   The   limitation   is
  1224.               intentional.
  1225.  
  1226. a.  From
  1227.  
  1228.     This field contains the identity of the person(s) who  wished
  1229.     this message to be sent.  The message-creation process should
  1230.     default this field to be a single machine address, indicating
  1231.     the AGENT (person or process) entering the message.  If  this
  1232.     is  NOT  done, the "Sender" field MUST be present; if this IS
  1233.     done, the "Sender" field is optional.
  1234.  
  1235. b.  Sender
  1236.  
  1237.     This field contains  the  identity  of  the  AGENT (person or
  1238.     process) who  sends the message.  It is intended for use when
  1239.     the sender is not the author of the message, or  to  indicate
  1240.     who  among  a group of authors actually sent the message.  If
  1241.     the contents  of  the  "Sender"  field  would  be  completely
  1242.     redundant with the "From" field, then the "Sender" field need
  1243.     not be present and  its  use  is  discouraged  (though  still
  1244.     legal);  in  particular,  the  "Sender" field MUST be present
  1245.     if it is NOT the same as the "From" Field.
  1246.  
  1247.     The  Sender  host-phrase  includes  a   phrase   which   must
  1248.     correspond  to  a  specific  agent  (i.e.,  a human user or a
  1249.     computer program)  rather  than  a  standard  address.   This
  1250.     indicates  the  expectation  that the field will identify the
  1251.     single AGENT (person or process) responsible for sending  the
  1252.  
  1253.  
  1254. Standard for the Format of Text Messages                       21
  1255. IV. Semantics
  1256.  A. Address Fields
  1257.  
  1258.  
  1259.  
  1260.     mail  and not simply include the name of a mailbox from which
  1261.     the mail was sent.  For example in the case of a shared login
  1262.     name, the name, by itself, would not be adequate.  The phrase
  1263.     part of the host-phrase,  which  refers  to  this  agent,  is
  1264.     expected  to be a computer system term, and not (for example)
  1265.     a generalized person reference which can be used outside  the
  1266.     network text message context.
  1267.  
  1268.     Since the critical function served by the "Sender"  field  is
  1269.     the  identification of the agent responsible for sending mail
  1270.     and since computer programs cannot be  held  accountable  for
  1271.     their  behavior, is strongly recommended that when a computer
  1272.     program generates a message, the HUMAN who is responsible for
  1273.     that  program  be  referenced  as  part of the "Sender" field
  1274.     host-phrase.
  1275.  
  1276. c.  Reply-To
  1277.  
  1278.     This field provides a general mechanism  for  indicating  any
  1279.     mailbox(es) to which responses are to be sent.  Three typical
  1280.     uses for this feature can be  distinguished.   In  the  first
  1281.     case,  the  author(s)  may  not  have  regular  machine-based
  1282.     mailboxes and therefore wish(es)  to  indicate  an  alternate
  1283.     machine  address.   In  the  second  case, an author may wish
  1284.     additional persons to be made aware of, or  responsible  for,
  1285.     responses;  responders  should  send  their  replies  to  the
  1286.     "Reply-To" mailbox(es) listed in  the  original  message.   A
  1287.     somewhat  different  use may be of some help to "text message
  1288.     teleconferencing" groups equipped with automatic distribution
  1289.     services:   include  the  address  of  that  service  in  the
  1290.     "Reply-To"  field  of   all   messages   submitted   to   the
  1291.     teleconference;  then  participants can "reply" to conference
  1292.     submissions to guarantee  the  correct  distribution  of  any
  1293.     submission of their own.
  1294.  
  1295.     Reply-To fields are  NOT  required  to  contain  any  machine
  1296.     addresses  (i.e., host-phrases).   Note,  however,  that  the
  1297.     absence  of even one  valid  network  address  will  tend  to
  1298.     prevent  software  systems from automatically assisting users
  1299.     in conveniently responding to mail.
  1300.  
  1301. NOTE:  For systems which automatically generate address lists for
  1302. replies to messages, the following recommendations are made:
  1303.  
  1304.      o  The receiver, when replying  to  a  message,  should
  1305.         NEVER automatically include the "Sender" host-phrase
  1306.         in the reply's address list;
  1307.  
  1308.      o  If the  "Reply-To"  field  exists,  then  the  reply
  1309.         should  go  ONLY  to the addresses indicated in that
  1310.         field and not to  the  addresses  indicated  in  the
  1311.         "From" field.
  1312.  
  1313.  
  1314. Standard for the Format of Text Messages                       22
  1315. IV. Semantics
  1316.  A. Address Fields
  1317.  
  1318.  
  1319.  
  1320. (Extensive    examples  are  provided  in   Section   V.)    This
  1321. recommendation  is intended only for originator-fields and is not
  1322. intended to suggest that replies should not also be sent  to  the
  1323. other  recipients  of  this  message.  It is up to the respective
  1324. mail handling programs to decide what additional facilities  will
  1325. be provided.
  1326.  
  1327.  
  1328. 3.  Receiver Fields
  1329.  
  1330. a.  To
  1331.  
  1332.     This field contains the identity of the primary recipients of
  1333.     the message.
  1334.  
  1335. b.  cc
  1336.  
  1337.     This field contains the identity of the secondary  recipients
  1338.     of the message.
  1339.  
  1340. b.  Bcc
  1341.  
  1342.     This field contains the identity of additional recipients  of
  1343.     the  message.  The contents of this field are not included in
  1344.     copies of the message  sent  to  the  primary  and  secondary
  1345.     recipients.   Some  systems may choose to include the text of
  1346.     the "Bcc" field only in the author(s)'s  copy,  while  others
  1347.     may  also  include it in the text sent to all those indicated
  1348.     in the "Bcc" list.
  1349.  
  1350.  
  1351.  
  1352. B.  REFERENCE SPECIFICATION FIELDS
  1353.  
  1354.  
  1355. 1.  Message-ID
  1356.  
  1357. This field contains a unique identifier (the phrase) which refers
  1358. to  THIS  version of THIS message.  The uniqueness of the message
  1359. identifier is guaranteed by the host which  generates  it.   This
  1360. identifier is intended to be machine readable and not necessarily
  1361. meaningful to humans.  A message identifier pertains  to  exactly
  1362. one  instantiation  of a particular message; subsequent revisions
  1363. to the message should each receive a new message identifier.
  1364.  
  1365.  
  1366. 2.  In-Reply-To
  1367.  
  1368. The contents of this field identify previous correspondence which
  1369. this  message answers.  Note that if message identifiers are used
  1370. in this field, they must use the mach-id specification format.
  1371.  
  1372.  
  1373.  
  1374. Standard for the Format of Text Messages                       23
  1375. IV. Semantics
  1376.  B. Reference Specification Fields
  1377.  
  1378.  
  1379.  
  1380. 3.  References
  1381.  
  1382. The contents of this field identify  other  correspondence  which
  1383. this  message  references.   Note  that  if  message  identifiers
  1384. are used, they  must  use  the  mach-id  specification format.
  1385.  
  1386.  
  1387. 4.  Keywords
  1388.  
  1389. This field contains keywords or phrases, separated by commas.
  1390.  
  1391.  
  1392.  
  1393. C.  OTHER FIELDS AND SYNTACTIC ITEMS
  1394.  
  1395.  
  1396. 1.  Subject
  1397.  
  1398. The "Subject" field is intended to provide as much information as
  1399. necessary  to  adequately summarize or indicate the nature of the
  1400. message.
  1401.  
  1402.  
  1403. 2.  Comments
  1404.  
  1405. Permits adding text comments onto the message without  disturbing
  1406. the contents of the message's body.
  1407.  
  1408.  
  1409. 3.  Extension-field
  1410.  
  1411. A relatively limited number of common fields have been defined in
  1412. this  document.  As network mail requirements dictate, additional
  1413. fields may be standardized.  The authors of  this  document  will
  1414. regulate  the publishing of such definitions as extensions to the
  1415. basic specification.
  1416.  
  1417.  
  1418. 4.  User-defined-field
  1419.  
  1420. Individual users of network mail  are  free  to  define  and  use
  1421. additional  header fields.  Such fields must have names which are
  1422. not  already  used  in  the  current  specification  or  in   any
  1423. definitions  of extension-fields, and the overall syntax of these
  1424. user-defined-fields must conform to  this  specification's  rules
  1425. for  delimiting and  folding  fields.  Due to the extension-field
  1426. publishing process, the name of a user-defined-field may be  pre-
  1427. empted.
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433. Standard for the Format of Text Messages                       24
  1434. IV. Semantics
  1435.  D. Dates
  1436.  
  1437.  
  1438.  
  1439. D.  DATES AND TIMES
  1440.  
  1441. If included, day-of-week must be the  day  implied  by  the  date
  1442. specification.
  1443.  
  1444. Time zone  may  be  indicated  in  several  ways.   The  military
  1445. standard   uses  a  single  character  for  each  zone.   "Z"  is
  1446. Greenwhich Mean Time; "A" indicates one  hour  earlier,  and  "M"
  1447. indicates  12 hours earlier; "N" is one hour later, and "Y" is 12
  1448. hours later.  The letter "J" is not used.   The  other  remaining
  1449. two  forms  are  taken from ANSI standard X3.51-1975.  One allows
  1450. explicit indication of the amount of offset from GMT;  the  other
  1451. uses  common  3-character  strings  for  indicating time zones in
  1452. North America.
  1453.  
  1454.  
  1455.  
  1456. Standard for the Format of Text Messages                       25
  1457. V. Examples
  1458. A. Addresses
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.                           V.  EXAMPLES
  1465.  
  1466.  
  1467. A.  ADDRESSES
  1468.  
  1469.  
  1470. 1.  Alfred E. Neuman <Neuman at BBN-TENEXA>
  1471.  
  1472. 2.  Neuman@BBN-TENEXA
  1473.  
  1474. These two "Alfred E. Neuman" examples have  identical  semantics,
  1475. as  far  as  the  operation  of  the  local  host's  mail sending
  1476. (distribution) program (also sometimes called its  "mailer")  and
  1477. the  remote  host's  FTP  server  are  concerned.   In  the first
  1478. example, the "Alfred E. Neuman" is  ignored  by  the  mailer,  as
  1479. "Neuman  at  BBN-TENEXA" completely specifies the recipient.  The
  1480. second example contains no superfluous information,  and,  again,
  1481. "Neuman@BBN-TENEXA" is the intended recipient.
  1482.  
  1483.  
  1484. 3.  Al Neuman at BBN-TENEXA
  1485.  
  1486. This is identical to "Al Neuman <Al Neuman at BBN-TENEXA>".  That
  1487. is,  the  full  phrase, "Al Neuman", is passed to the FTP server.
  1488. Note that not all FTP servers accept multi-word identifiers;  and
  1489. some  that  do  accept  them  will treat each word as a different
  1490. addressee (in this case, attempting to send a copy of the message
  1491. to "Al" and a copy to "Neuman").
  1492.  
  1493.  
  1494. 4.  "George Lovell, Ted Hackle" <Shared-Mailbox at Office-1>
  1495.  
  1496. This form might be used to indicate  that  a  single  mailbox  is
  1497. shared  by  several  users.   The quoted string is ignored by the
  1498. originating  host's  mailer,  as  "Shared-Mailbox  at   Office-1"
  1499. completely specifies the destination mailbox.
  1500.  
  1501.  
  1502. 4.  Wilt (the Stilt) Chamberlain at NBA
  1503.  
  1504. The "(the Stilt)" is a comment, which  is  NOT  included  in  the
  1505. destination  mailbox  address  handed to the originating system's
  1506. mailer.  The  address  is  the  string  "Wilt Chamberlain",  with
  1507. exactly  one  space  between  the  first  and second words.  (The
  1508. quotation marks are not included.)
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514. Standard for the Format of Text Messages                       26
  1515. V. Examples
  1516. B. Address Lists
  1517.  
  1518.  
  1519.  
  1520. B.  ADDRESS LISTS
  1521.  
  1522.     Gourmets:  Pompous Person <WhoZiWhatZit at Cordon-Bleu>,
  1523.                Cooks:  Childs at WGBH, Galloping Gourmet at
  1524.                        ANT (Australian National Television);,
  1525.                Wine Lovers:  Cheapie at Discount-Liquors,
  1526.                              Port at Portugal;;,
  1527.     Jones at SEA
  1528.  
  1529. This group list example points  out  the  use  of  comments,  the
  1530. nesting  of groups, and the mixing of addresses and groups.  Note
  1531. that the two consecutive semi-colons  preceding  "Jones  at  SEA"
  1532. mean that Jones is NOT a member of the Gourmets group.
  1533.  
  1534.  
  1535. C.  ORIGINATOR ITEMS
  1536.  
  1537.  
  1538. 1.  Author-sent
  1539.  
  1540. George Jones logs into  his  Host  as  "Jones".   He  sends  mail
  1541. himself.
  1542.  
  1543.     From:  Jones at Host
  1544. or
  1545.     From:  George Jones <Jones at Host>
  1546.  
  1547.  
  1548. 2.  Secretary-sent
  1549.  
  1550. George Jones logs in as Jones on his Host.   His  secretary,  who
  1551. logs in as Secy on Shost sends mail for him.  Replies to the mail
  1552. should go to George, of course.
  1553.  
  1554.     From:    George Jones <Jones at Host>
  1555.     Sender:  Secy at SHost
  1556.  
  1557.  
  1558. 3.  Shared directory or unrepresentative directory-name
  1559.  
  1560. George Jones logs in as Group at Host.  He  sends  mail  himself;
  1561. replies should go to the Group mailbox.
  1562.  
  1563.     From:  George Jones <Group at Host>
  1564.  
  1565.  
  1566.  
  1567.  
  1568. Standard for the Format of Text Messages                       27
  1569. V. Examples
  1570. C. Originator Items
  1571.  
  1572.  
  1573.  
  1574. 4.  Secretary-sent, for user of shared directory
  1575.  
  1576. George Jones' secretary sends mail for George in his capacity  as
  1577. a  member  of  Group  while  logged  in as Secy at Host.  Replies
  1578. should go to Group.
  1579.  
  1580.     From:   George Jones<Group at Host>
  1581.     Sender: Secy at Host
  1582.  
  1583. Note that there need not be a space between "Jones" and the  "<",
  1584. but  adding a space enhances readability (as is the case in other
  1585. examples).
  1586.  
  1587.  
  1588. 5.  Secretary acting as full agent of author
  1589.  
  1590. George Jones asks his secretary (Secy at Host) to send a  message
  1591. for  him  in  his  capacity  as Group.  He wants his secretary to
  1592. handle all replies.
  1593.  
  1594.     From:     George Jones <Group at Host>
  1595.     Sender:   Secy at Host
  1596.     Reply-To: Secy at Host
  1597.  
  1598.  
  1599. 6.  Agent for user without online mailbox
  1600.  
  1601. A  non-ARPANET  user  friend  of  George's,  Sarah,  is  visting.
  1602. George's  secretary  sends  some  mail  to  a  friend of Sarah in
  1603. computer-land.  Replies should go to  George,  whose  mailbox  is
  1604. Jones at Host.
  1605.  
  1606.     From:     Sarah Friendly
  1607.     Sender:   Secy at Host
  1608.     Reply-To: Jones at Host
  1609.  
  1610.  
  1611. 7.  Sent by member of a committee
  1612.  
  1613. George is a member of a committee.  He wishes to have any replies
  1614. to his message go to all committee members.
  1615.  
  1616.     From:     George Jones
  1617.     Sender:   Jones at Host
  1618.     Reply-To: Big-committee: Jones at Host,
  1619.                              Smith at Other-Host,
  1620.                              Doe at Somewhere-Else;
  1621.  
  1622. Note that if George had not included himself in  the  enumeration
  1623. of Big-committee, he would not have gotten an implicit reply; the
  1624. presence  of  the  "Reply-to"  field  SUPERSEDES the sending of a
  1625. reply to the person named in the "From" field.
  1626.  
  1627.  
  1628. Standard for the Format of Text Messages                       28
  1629. V. Examples
  1630. C. Originator Items
  1631.  
  1632.  
  1633.  
  1634. 8.  Example of INCORRECT use
  1635.  
  1636. George desires a reply to go  to  his  secretary;  therefore  his
  1637. secretary  leaves  his  mailbox  address  off  the  "From" field,
  1638. leaving only his name, which is not, itself, a mailbox address.
  1639.  
  1640.          From:   George Jones
  1641.          Sender: Secy at SHost
  1642.  
  1643. THIS IS NOT PERMITTED.  Replies are NEVER implicitly sent to  the
  1644. "Sender";  George's  secretary  should  have  used the "Reply-To"
  1645. field, or the  mail  creating  program  should  have  forced  the
  1646. secretary to.
  1647.  
  1648. 9.  Agent for member of a committee
  1649.  
  1650. George's secretary sends out a message which was authored jointly
  1651. by all the members of the "Big-committee".
  1652.  
  1653.          From:   Big-committee: Jones at Host,
  1654.                                 Smith at Other-Host,
  1655.                                 Doe at Somewhere-Else;
  1656.          Sender: Secy at SHost
  1657.  
  1658.  
  1659.  
  1660. D.  COMPLETE HEADERS
  1661.  
  1662.  
  1663. 1.  Minimum required:
  1664.  
  1665.        Date:  26 August 1976 1429-EDT
  1666.        From:  Jones at Host
  1667.  
  1668.  
  1669. 2.  Using some of the additional fields:
  1670.  
  1671.        Date: 26 August 1976 1430-EDT
  1672.        From:George Jones<Group at Host>
  1673.        Sender:Secy at SHOST
  1674.        To:Al Neuman at Mad-Host,
  1675.                 Sam Irving at Other-Host
  1676.        Message-ID:  <some string at SHOST>
  1677.  
  1678.  
  1679.  
  1680.  
  1681. Standard for the Format of Text Messages                       29
  1682. V. Examples
  1683. D.  Complete Headers
  1684.  
  1685.  
  1686.  
  1687. 3.  About as complex as you're going to get:
  1688.  
  1689.        Date     :  27 Aug 1976 0932-PDT
  1690.        From     :  Ken Davis <KDavis at Other-Host>
  1691.        Subject  :  Re: The Syntax in the RFC
  1692.        Sender   :  KSecy at Other-Host
  1693.        Reply-To :  Sam Irving at Other-Host
  1694.        To       :  George Jones <Group at Host>,
  1695.                    Al Neuman at Mad-Host
  1696.        cc       :  Important folk:
  1697.                    Tom Softwood <Balsa at Another-Host>,
  1698.                    Sam Irving at Other-Host;,
  1699.                    Standard Distribution::Include:
  1700.                     </main/davis/people/standard at Other-Host,
  1701.                      "<Jones>standard.dist.3" at Tops-20-Host>,
  1702.                    (The following Included Postal list is part
  1703.                    of Standard Distribution.)
  1704.                    :Postal::Include: Non-net-addrs@Other-host;,
  1705.                    :Postal: "Sam Irving, P.O. Box 001, Las Vegas,
  1706.                              Nevada"  (So that he can stay
  1707.                              apprised of the situation)
  1708.        Comment  :  Sam is away on business. He asked me to handle
  1709.                    his mail for him.  He'll be able to provide  a
  1710.                    more  accurate  explanation  when  he  returns
  1711.                    next week.
  1712.        In-Reply-To: <some string at SHOST>
  1713.        Special (action):  This is a sample of multi-word field-
  1714.                    names, using a range of characters.  There
  1715.                    could also be a field-name "Special (info)".
  1716.        Message-ID: <4231.629.XYzi-What at Other-Host>
  1717.  
  1718.  
  1719.  
  1720. Standard for the Format of Text Messages                       31
  1721. Appendix
  1722. A. Alphabetical Listing of Syntax Rules
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.                         APPENDIX
  1729.  
  1730.  
  1731.  
  1732. A.  ALPHABETICAL LISTING OF SYNTAX RULES
  1733.  
  1734.  
  1735. address     =  host-phrase / quoted-string
  1736.             / (*phrase "<" #address ">" )
  1737.             / (*phrase ":" #address ";" )
  1738.             / (":" ("Include" / "Postal" / atom) ":" address)
  1739. ALPHA       =  <any TELNET ASCII alphabetic character>
  1740. atom        =  1*<any CHAR except specials and CTLs>
  1741.  
  1742. CHAR        =  <any TELNET ASCII character>
  1743. comment     =  "(" *(ctext / comment / quoted-pair) ")"
  1744. CR          =  <TELNET ASCII carriage return>
  1745. CRLF        =  CR LF
  1746. ctext       =  <any CHAR excluding "(", ")", CR, LF and
  1747.                including linear-white-space>
  1748. CTL         =  <any TELNET ASCII control character and DEL>
  1749.  
  1750. date        =  1*2DIGIT ["-"] month ["-"] (2DIGIT /4DIGIT)
  1751. date-field  =  "Date"       ":" date-time
  1752. date-time   =  [ day-of-week "," ] date time
  1753. day-of-week =  "Monday"    / "Mon"  / "Tuesday"   / "Tue"
  1754.             /  "Wednesday" / "Wed"  / "Thursday"  / "Thu"
  1755.             /  "Friday"    / "Fri"  / "Saturday"  / "Sat"
  1756.             /  "Sunday"    / "Sun"
  1757. delimiters  =  specials / comment / linear-white-space
  1758. DIGIT       =  <any TELNET ASCII digit>
  1759.  
  1760. extension-field = <Any field which is defined in a document
  1761.                published as a formal extension to this
  1762.                specification>
  1763.  
  1764. field       =  field-name ":" [ field-body ] CRLF
  1765.  
  1766. fields      =  date-field  originator-fields  *optional-field
  1767. field-body  =  field-body-contents
  1768.                [CRLF LWSP-char field-body]
  1769. field-body-contents = <the TELNET ASCII characters making up the
  1770.                field-body, as defined in the following sections,
  1771.                and consisting of combinations of atom, quoted-
  1772.                string, and specials tokens, or else consisting of
  1773.                texts>
  1774. field-name  =  fnatom *(LWSP-char [fnatom])
  1775. fnatom      =  1*<any CHAR, excluding CTLs, SPACE, and ":">
  1776.  
  1777.  
  1778.  
  1779. Standard for the Format of Text Messages                       32
  1780. Appendix
  1781. A. Alphabetical Listing of Syntax Rules
  1782.  
  1783.  
  1784.  
  1785. host-indicator =  1*( ("at" / "@") node )
  1786. host-phrase =  phrase  host-indicator
  1787. hour        =  2DIGIT [":"] 2DIGIT [ [":"] 2DIGIT ]
  1788. HTAB        =  <TELNET ASCII horizontal-tab>
  1789.  
  1790. LF          =  <TELNET ASCII linefeed>
  1791. linear-white-space =  1*([CRLF] LWSP-char)
  1792. LWSP-char   = SPACE / HTAB
  1793.  
  1794. mach-id     =  "<" host-phrase ">"
  1795. mailbox     =  host-phrase /  (phrase mach-id)
  1796. message     =  fields *(CRLF *text)
  1797. month       =  "January"   / "Jan"  / "February"  / "Feb"
  1798.             /  "March"     / "Mar"  / "April"     / "Apr"
  1799.             /  "May"                / "June"      / "Jun"
  1800.             /  "July"      / "Jul"  / "August"    / "Aug"
  1801.             /  "September" / "Sep"  / "October"   / "Oct"
  1802.             /  "November"  / "Nov"  / "December"  / "Dec"
  1803.  
  1804. node        =  word / 1*DIGIT
  1805.  
  1806. optional-field  =
  1807.                "To"         ":" #address
  1808.             /  "cc"         ":" #address
  1809.             /  "bcc"        ":" #address
  1810.             /  "Subject"    ":" *text
  1811.             /  "Comments"   ":" *text
  1812.             /  "Message-ID" ":" mach-id
  1813.             /  "In-Reply-To"":" #(phrase / mach-id)
  1814.             /  "References" ":" #(phrase / mach-id)
  1815.             /  "Keywords"   ":" #phrase
  1816.             /  extension-field
  1817.             /  user-defined-field
  1818. originator-fields =
  1819.                (  "From"     ":" mailbox
  1820.                  ["Reply-To" ":" #address] )
  1821.             /  (  "From"     ":" 1#address
  1822.                   "Sender"   ":" mailbox
  1823.                  ["Reply-To" ":" #address] )
  1824.  
  1825. phrase      =  1*word
  1826.  
  1827. quoted-pair =  "\" CHAR
  1828. quoted-string =  <">  *(qtext / quoted-pair)  <">
  1829. qtext       =  <any CHAR except <">, CR, or LF and including
  1830.                linear-white-space>
  1831. SPACE       =  <TELNET ASCII space>
  1832. specials    =  "(" / ")" / "<" / ">" / "@"/ "," / ";" / ":"
  1833.             /  "\" / <">
  1834.  
  1835. text        =  <any CHAR, including bare CR and/or bare LF, but
  1836.                NOT including CRLF>
  1837.  
  1838.  
  1839. Standard for the Format of Text Messages                       33
  1840. Appendix
  1841. A. Alphabetical Listing of Syntax Rules
  1842.  
  1843.  
  1844.  
  1845. time        =  hour zone
  1846.  
  1847. user-defined-field = <Any field which has not been defined in
  1848.                this specification or published as an extension to
  1849.                this specification; names for such fields must be
  1850.                unique and may be preempted by putlished
  1851.                extensions>
  1852.  
  1853. word        =  atom / quoted-string
  1854.  
  1855. zone        = ( ("+" / "-") 4DIGIT )
  1856.             / ( ["-"] (1ALPHA
  1857.               / "GMT" / "NST"  / "AST" / "ADT" / "EST" / "EDT"
  1858.               / "CST" / "CDT"  / "MST" / "MDT" / "PST" / "PDT"
  1859.               / "YST" / "YDT"  / "HST" / "HDT" / "BST" / "BDT" ))
  1860.  
  1861. <">         =  <TELNET ASCII quote mark>
  1862.  
  1863.  
  1864.  
  1865. Standard for the Format of Text Messages                       35
  1866. Appendix
  1867. B. Simple Parsing
  1868.  
  1869.  
  1870.  
  1871.  
  1872. B.  SIMPLE PARSING
  1873.  
  1874.  
  1875.      Some mail-reading software systems may wish to perform  only
  1876. minimal  processing,  ignoring  the internal syntax of structured
  1877. field-bodies and treating them the  same  as  unstructured-field-
  1878. bodies.  Such software will need only to distinguish:
  1879.  
  1880.      -  Header fields from the message body,
  1881.      -  Beginnings of fields from lines which continue fields,
  1882.      -  Field-names from field-contents.
  1883.  
  1884.      The abbreviated set of syntactic rules  which  follows  will
  1885. suffice  for  this  purpose.   They  describe  a  limited view of
  1886. messages and are a subset of the syntactic rules provided in  the
  1887. main part of this specification.  One small exception is that the
  1888. contents of field-bodies consist only of text:
  1889.  
  1890.  
  1891. SYNTAX:
  1892.  
  1893. message         =  *field *(CRLF *text)
  1894.  
  1895. field           =  field-name ":" [field-body] CRLF
  1896.  
  1897. field-name      =  fnatom *( LWSP-char [fnatom] )
  1898.  
  1899. fnatom          =  1*<any CHAR, excluding CTLs, SPACE, and ":">
  1900.  
  1901.  
  1902. field-body      =  *text [CRLF LWSP-char field-body]
  1903.  
  1904.  
  1905. SEMANTICS:
  1906.  
  1907.      Headers occur before the message body and are terminated  by
  1908. a null line (i.e., two contiguous CRLFs).
  1909.  
  1910.      A line which continues a header field begins with a SPACE or
  1911. HTAB  character,  while  a  line  beginning a field starts with a
  1912. printable character which is not a colon.
  1913.  
  1914.      A field-name consists of one or  more  printable  characters
  1915. (excluding colon), each separated by one or more SPACES or HTABS.
  1916. A field-name MUST be contained on one line.  Upper and lower case
  1917. are not distinguished when comparing field-names.
  1918.  
  1919.  
  1920.  
  1921. Standard for the Format of Text Messages                       37
  1922. Bibliography
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.                           BIBLIOGRAPHY
  1930.  
  1931.  
  1932. ANSI.   Representations   of   universal   time,    local    time
  1933.    differentials,  and  United  States  time  zone references for
  1934.    information interchange.  ANSI X3.51-1975;  American  National
  1935.    Standards Institute:  New York, 1975.
  1936.  
  1937. Bhushan, A.K.  The File Transfer Protocol.  ARPANET  Request  for
  1938.    Comments,  No.   354,  Network  Information Center No.  10596;
  1939.    Augmentation Research  Center,  Stanford  Research  Institute:
  1940.    Menlo Park, July 1972.
  1941.  
  1942. Bhushan, A.K.  Comments on the File Transfer  Protocol.   ARPANET
  1943.    Request for Comments, No.  385, Network Information Center No.
  1944.    11357;  Augmentation  Research   Center,   Stanford   Research
  1945.    Institute:  Menlo Park, August 1972.
  1946.  
  1947. Bhushan, A.K., Pogran, K.T., Tomlinson,  R.S.,  and  White,  J.E.
  1948.    Standardizing  Network  Mail  Headers.   ARPANET  Request  for
  1949.    Comments, No.  561,  Network  Information  Center  No.  18516;
  1950.    Augmentation  Research  Center,  Stanford  Research Institute:
  1951.    Menlo Park, September 1973.
  1952.  
  1953. Feinler,  E.J.  and  Postel,  J.B.   ARPANET  Protocol  Handbook.
  1954.    Network  Information  Center  No.  7104; Augmentation Research
  1955.    Center, Stanford Research Institute:  Menlo Park,  April  1976.
  1956.    (NTIS AD A003890).
  1957.  
  1958. McKenzie,  A.   File  Transfer  Protocol.   ARPANET  Request  for
  1959.    Comments,  No.  454,  Network  Information  Center  No. 14333;
  1960.    Augmentation Research  Center,  Stanford  Research  Institute:
  1961.    Menlo Park, February 1973.
  1962.  
  1963. McKenzie,  A. TELNET Protocol Specification.  Network Information
  1964.    Center  No.   18639;  Augmentation  Research  Center, Stanford
  1965.    Research Institute:  Menlo Park, August 1973.
  1966.  
  1967. Myer, T.H. and Henderson, D.A.   Message  Transmission  Protocol.
  1968.    ARPANET  Request  for  Comments,  No. 680, Network Information
  1969.    Center  No.  32116;  Augmentation  Research  Center,  Stanford
  1970.    Research Institute:  Menlo Park, 1975.
  1971.  
  1972. Neigus,  N.   File  Transfer  Protocol.   ARPANET   Request   for
  1973.    Comments,  No.  542,  Network  Information  Center  No. 17759;
  1974.    Augmentation Research  Center,  Stanford  Research  Institute:
  1975.    Menlo Park, July 1973.
  1976.  
  1977. Pogran, K., Vittal, J., Crocker, D. and Henderson,  A.   Proposed
  1978.    official  standard  for  the  format of ARPA network messages.
  1979.  
  1980.  
  1981. Standard for the Format of Text Messages                       38
  1982. Bibliography
  1983.  
  1984.  
  1985.  
  1986.  
  1987.    ARPANET Request for Comments,  No.  724,  Network  Information
  1988.    Center  No.  37435;  Augmentation  Research  Center,  Stanford
  1989.    Research Institute:  Menlo Park, May 1977.
  1990.  
  1991. Postel, J.B.  Revised  FTP  Reply  Codes.   ARPANET  Request  for
  1992.    Comments,  No.  640,  Network  Information  Center  No. 30843;
  1993.    Augmentation Research  Center,  Stanford  Research  Institute:
  1994.    Menlo Park, June 1974.
  1995.  
  1996.